package com.java.comprehensive.arithmetic.leecode.medium;

import util.ListNode;

public class LeetCode_24 {


    public static ListNode swapPairs(ListNode head) {

        ListNode dummyHead = new ListNode();
        dummyHead.next = head;
        ListNode curr = dummyHead;

        while (curr.next != null && curr.next.next != null) {
            ListNode next = curr.next;
            ListNode nextNextNext = curr.next.next.next;
            curr.next = curr.next.next;
            curr.next.next = next;
            next.next = nextNextNext;
            curr = curr.next.next;
        }
        return dummyHead.next;
    }

    public static void main(String[] args) {
        ListNode listNode1 = new ListNode();
        listNode1.val = 1;
        ListNode listNode2 = new ListNode();
        listNode2.val = 2;
        ListNode listNode3 = new ListNode();
        listNode3.val = 3;
        ListNode listNode4 = new ListNode();
        listNode4.val = 4;

        listNode1.next = listNode2;
        listNode2.next = listNode3;
        listNode3.next = listNode4;
        System.out.println(swapPairs(listNode1));

    }
}
